package main

import (
	"fmt"
)

const (
	rune1Max = 1<<7 - 1
	t2       = 0b11000000
	t3       = 0b11100000
	tx       = 0b10000000
	maskx    = 0b00111111
)

type MapDemo map[string]string

func main() {
	//var tmp [16]byte
	//b := append(tmp[:0], '%')
	//fmt.Println(tmp)
	//fmt.Println('%')
	//fmt.Println(b)
	//fmt.Println(string(rune(37)))
	//fmt.Println(string(rune(50)))
	//fmt.Println(strconv.AppendInt(b, int64(2), 10))
	//
	//var str2 string = "你好 世界"
	//fmt.Println("byte=", []byte(str2))
	//fmt.Println("byte=", []rune(str2))
	//fmt.Println(str2[:2])
	//fmt.Println(string([]rune(str2)[:2]))
	//
	//fmt.Println("------------------------")
	//fmt.Println(rune('城') >> 12)
	//fmt.Printf("%b\n", rune('城')>>12)
	//fmt.Println(rune('城') >> 6)
	//fmt.Printf("%b\n", rune('城')>>6)
	//fmt.Println(rune('城'))
	//fmt.Printf("%b\n", rune('城'))
	//
	//fmt.Printf("%b\n", 255)
	//
	//fmt.Println("------------------------")
	//r := rune('城')
	//fmt.Printf("%b\n", r)
	//
	//fmt.Println(byte(r >> 12))
	//fmt.Printf("%b %b\n", byte(r>>12), t3|byte(r>>12))
	//
	//fmt.Println(byte(r >> 6))
	//fmt.Printf("%b %b\n", byte(r>>6), tx|byte(r>>6)&maskx)
	//
	//fmt.Println(byte(r))
	//fmt.Printf("%b %b\n", byte(r), tx|byte(r)&maskx)
	//fmt.Println("------------------------")
	//fmt.Println(t3|byte(r>>12), tx|byte(r>>6)&maskx, tx|byte(r)&maskx)
	//fmt.Printf("%b %b %b\n", t3|byte(r>>12), tx|byte(r>>6)&maskx, tx|byte(r)&maskx)
	//
	//fmt.Printf("%b\n", 1<<16-1)
	//
	//a := fmt.Appendf([]byte("城中村"), "%s", "1111")
	//fmt.Println(string(a))
	//
	//z := "城中村"
	//fmt.Println(reflect.TypeOf(&z))
	//
	//c := "三个人"
	//var f any
	//f = c
	//switch t := f.(type) {
	//case string:
	//	fmt.Println(t)
	//	fmt.Println(reflect.ValueOf(t))
	//}

	fmt.Printf("%%\n\n", string("dsfsd"))
	fmt.Println()
	demo := map[string]string{
		"hello": "world",
		"world": "hello",
	}

	fmt.Println(MapDemo(demo))

}
